home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cato / Xm / WML.z / WML
Encoding:
Text File  |  1998-10-20  |  30.6 KB  |  661 lines

  1.  
  2.  
  3.  
  4.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           WWWWMMMMLLLL - The widget meta-language file format for creating uil
  10.           compilers
  11.  
  12.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  13.           The widget meta-language facility (WML) is used to generate
  14.           the components of the user interface language (UIL) compiler
  15.           that can change depending on the widget set.  Using WML you
  16.           can add support in UIL for new widgets to the 1/Motif widget
  17.           set or for a totally new widget set.
  18.  
  19.      FFFFIIIILLLLEEEE FFFFOOOORRRRMMMMAAAATTTT
  20.           WML files are ASCII files that you can modify with any
  21.           standard text editor.  They are accessed in the ttttoooooooollllssss////wwwwmmmmllll
  22.           directory by WML.  By convention WML files have the suffix
  23.           ....wwwwmmmmllll.  The Motif widget set is described in the mmmmoooottttiiiiffff....wwwwmmmmllll
  24.           file.  This is also the default WML file when using the WML
  25.           facility.
  26.  
  27.           When adding new widgets or changing widget characteristics,
  28.           you should start with a copy of the mmmmoooottttiiiiffff....wwwwmmmmllll file.  If you
  29.           are creating a new widget set for use with UIL, you should
  30.           start from scratch.  In either case the mmmmoooottttiiiiffff....wwwwmmmmllll file is a
  31.           good example of WML syntax, and you should familiarize
  32.           yourself with it before writing your own WML file.
  33.  
  34.           WML files have a simple syntax, similar in structure to UIL.
  35.           It is made up of the following elements:
  36.  
  37.  
  38.             +o  Comments
  39.  
  40.             +o  Data Type Definitions
  41.  
  42.             +o  Character Set Definitions
  43.  
  44.             +o  Enumeration Set Definitions
  45.  
  46.             +o  Control List Definitions
  47.  
  48.             +o  Class Definitions
  49.  
  50.             +o  Child Definitions
  51.  
  52.             +o  Resource Definitions
  53.  
  54.  
  55.           You can use space, tabs, or newlines anywhere in the syntax,
  56.           as long as you do not split up keywords or strings, except
  57.           that comments end at a newline.  The order of elements is
  58.           not important to the syntax.
  59.  
  60.  
  61.  
  62.  
  63.      Page 1                                          (printed 4/30/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  71.  
  72.  
  73.  
  74.           This description uses the following additional conventions
  75.           to describe the syntax of the widget meta-language:
  76.  
  77.  
  78.           [  ]   Indicates optional elements.
  79.  
  80.           ...    Indicates where an element of syntax can be repeated.
  81.  
  82.           |      Indicates a choice among multiple items.
  83.  
  84.  
  85.         CCCCoooommmmmmmmeeeennnnttttssss
  86.           You can include comments in the WML file.  Comments have the
  87.           following syntax:
  88.  
  89.           [_a_n_y._e_l_e_m_e_n_t]!!!!_a_n_y._c_o_m_m_e_n_t
  90.  
  91.           Comments begin with an exclamation point and extend to the
  92.           end of the line.  A comment can begin on a line by itself or
  93.           follow any part of another element.  A comment does not
  94.           change the meaning of any other element.  For example:
  95.  
  96.           !This is a comment
  97.           !  that spans two lines.
  98.           DataType    !This is a comment following code.
  99.  
  100.  
  101.         DDDDaaaattttaaaa TTTTyyyyppppeeee DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  102.           Data type definitions register all the resource data types
  103.           used in the file.  You must register all the data types used
  104.           in your WML file.  Data type definitions have the following
  105.           syntax:
  106.  
  107.           DDDDaaaattttaaaaTTTTyyyyppppeeee
  108.                _a_n_y._d_a_t_a_t_y_p_e [{{{{ IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll ==== _i_n_t_e_r_n_a_l._n_a_m_e |
  109.                     DDDDooooccccNNNNaaaammmmeeee ==== """"_s_t_r_i_n_g"""";;;; [...]}}}}];;;;
  110.                [...]
  111.  
  112.           A data type definition begins with the keyword DDDDaaaattttaaaaTTTTyyyyppppeeee.
  113.           Following the DDDDaaaattttaaaaTTTTyyyyppppeeee keyword is a list of data types that
  114.           can be further modified with:
  115.  
  116.  
  117.           IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll
  118.                     This forces the value of the internal symbol table
  119.                     literal definition of the data type name.  This
  120.                     modifier is only used to get around symbol table
  121.                     definitions hard coded into the UIL compiler.  It
  122.                     should rarely be used.
  123.  
  124.           DDDDooooccccNNNNaaaammmmeeee   which gives an arbitrary string for use in the
  125.                     documentation.  This string is meant to supply a
  126.  
  127.  
  128.  
  129.      Page 2                                          (printed 4/30/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  137.  
  138.  
  139.  
  140.                     different name for the data type for use in the
  141.                     documentation, or a single name for the data type
  142.                     if the data type has aliases.
  143.  
  144.  
  145.           For example:
  146.  
  147.           DataType OddNumber {DocName="OddNumber";};
  148.                    NewString;
  149.  
  150.  
  151.         CCCChhhhaaaarrrraaaacccctttteeeerrrr SSSSeeeetttt DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  152.           Character set definitions register the Motif Toolkit name
  153.           and other information for the character set names used in
  154.           UIL.  Character set definitions have the following syntax:
  155.  
  156.           CCCChhhhaaaarrrraaaacccctttteeeerrrrSSSSeeeetttt
  157.                _a_n_y._c_h_a_r_a_c_t_e_r._s_e_t
  158.                     {{{{ [ FFFFoooonnnnttttLLLLiiiissssttttEEEElllleeeemmmmeeeennnnttttTTTTaaaagggg | XXXXmmmmSSSSttttrrrriiiinnnnggggCCCChhhhaaaarrrrsssseeeettttNNNNaaaammmmeeee ] ==== """"_s_t_r_i_n_g"""" ;;;;
  159.                          [ AAAAlllliiiiaaaassss ==== """"_s_t_r_i_n_g"""" ... ;;;; |
  160.                          DDDDiiiirrrreeeeccccttttiiiioooonnnn ==== [ LLLLeeeeffffttttTTTTooooRRRRiiiigggghhhhtttt | RRRRiiiigggghhhhttttTTTTooooLLLLeeeefffftttt ] ;;;; |
  161.                          PPPPaaaarrrrsssseeeeDDDDiiiirrrreeeeccccttttiiiioooonnnn ==== [ LLLLeeeeffffttttTTTTooooRRRRiiiigggghhhhtttt | RRRRiiiigggghhhhttttTTTTooooLLLLeeeefffftttt ] ;;;; |
  162.                          CCCChhhhaaaarrrraaaacccctttteeeerrrrSSSSiiiizzzzeeee ==== [ OOOOnnnneeeeBBBByyyytttteeee | TTTTwwwwooooBBBByyyytttteeee ] ;;;; ]
  163.                          [ ... ] }}}} ;;;;
  164.                [ ... ]
  165.  
  166.           A character set definition begins with the keyword
  167.           CCCChhhhaaaarrrraaaacccctttteeeerrrrSSSSeeeetttt.  Following the CCCChhhhaaaarrrraaaacccctttteeeerrrrSSSSeeeetttt keyword is a list
  168.           of character sets that can be further modified with:
  169.  
  170.  
  171.           FFFFoooonnnnttttLLLLiiiissssttttEEEElllleeeemmmmeeeennnnttttTTTTaaaagggg | XXXXmmmmSSSSttttrrrriiiinnnnggggCCCChhhhaaaarrrrsssseeeettttNNNNaaaammmmeeee
  172.                          Specifies the name of the character set,
  173.                          which will become the character set component
  174.                          of a compound string segment created using
  175.                          this character set.  This modifier is
  176.                          required.
  177.  
  178.           AAAAlllliiiiaaaassss          Specifies one or more aliases for the
  179.                          character set name.  Each alias can be used
  180.                          within UIL to refer to the same character
  181.                          set.
  182.  
  183.           DDDDiiiirrrreeeeccccttttiiiioooonnnn      Specifies the direction of a compound string
  184.                          segment created using this character set.
  185.                          The default is LLLLeeeeffffttttTTTTooooRRRRiiiigggghhhhtttt.
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.      Page 3                                          (printed 4/30/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  203.  
  204.  
  205.  
  206.           PPPPaaaarrrrsssseeeeDDDDiiiirrrreeeeccccttttiiiioooonnnn Specifies the direction in which an input
  207.                          string is parsed when a compound string
  208.                          segment is created using this character set.
  209.                          The default is whatever DDDDiiiirrrreeeeccccttttiiiioooonnnn is
  210.                          specified.
  211.  
  212.           CCCChhhhaaaarrrraaaacccctttteeeerrrrSSSSiiiizzzzeeee  Specifies the number of bytes in each
  213.                          character of a compound string segment
  214.                          created using this character set.  The
  215.                          default is OOOOnnnneeeeBBBByyyytttteeee.
  216.  
  217.  
  218.           For example:
  219.  
  220.           CharacterSet
  221.             iso_latin1
  222.               { XmStringCharsetName = "ISO8859-1";
  223.                 Alias = "ISOLatin1"; };
  224.             iso_hebrew_lr
  225.               { XmStringCharsetName = "ISO8859-8";
  226.                 Alias = "iso_latin8_lr";
  227.                 Direction = RightToLeft;
  228.                 ParseDirection = LeftToRight; };
  229.             ksc_korean
  230.               { XmStringCharsetName = "KSC5601.1987-0";
  231.                 CharacterSize = TwoByte; };
  232.  
  233.  
  234.         EEEEnnnnuuuummmmeeeerrrraaaattttiiiioooonnnn SSSSeeeetttt DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  235.           Enumeration set definitions register the named constants
  236.           used in the Motif Toolkit to specify some resource values.
  237.           Enumeration set definitions have the following syntax:
  238.  
  239.           EEEEnnnnuuuummmmeeeerrrraaaattttiiiioooonnnnSSSSeeeetttt
  240.                _r_e_s_o_u_r_c_e._n_a_m_e :::: _r_e_s_o_u_r_c_e._t_y_p_e
  241.                     {{{{ _e_n_u_m._v_a_l_u_e._n_a_m_e ;;;; [ ... ] }}}} ;;;;
  242.  
  243.           An enumeration set definition begins with the keyword
  244.           EEEEnnnnuuuummmmeeeerrrraaaattttiiiioooonnnnSSSSeeeetttt.  For each enumeration set defined, the name
  245.           and type of the resource are listed.  The resource name is
  246.           the Motif Toolkit resource name, with the beginning XXXXmmmmNNNN
  247.           removed and with the initial letter capitalized.  For
  248.           example, the name of the Motif Toolkit resource
  249.           XXXXmmmmNNNNrrrroooowwwwCCCCoooolllluuuummmmnnnnTTTTyyyyppppeeee is RRRRoooowwwwCCCCoooolllluuuummmmnnnnTTTTyyyyppppeeee.  The resource type is the
  250.           data type for the resource; for most resources, this is
  251.           iiiinnnntttteeeeggggeeeerrrr.  Following the resource name and type is a list of
  252.           names of enumeration values that can be used as settings for
  253.           the resource.  These names are the same as those in the
  254.           Motif Toolkit.
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                                          (printed 4/30/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  269.  
  270.  
  271.  
  272.           For example:
  273.  
  274.           EnumerationSet
  275.             RowColumnType: integer
  276.               { XmWORK_AREA; XmMENU_BAR; XmMENU_POPUP;
  277.                 XmMENU_PULLDOWN; XmMENU_OPTION; };
  278.  
  279.  
  280.         CCCCoooonnnnttttrrrroooollll LLLLiiiisssstttt DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  281.           Control list definitions assign a name to groups of
  282.           controls.  You can use these control lists later in class
  283.           definitions to simplify the structure of your WML file.
  284.           Control list definitions have the following syntax:
  285.  
  286.           CCCCoooonnnnttttrrrroooollllLLLLiiiisssstttt
  287.                _a_n_y._c_o_n_t_r_o_l._l_i_s_t [{{{{ _a_n_y._c_o_n_t_r_o_l;;;; [...]}}}}];;;;
  288.  
  289.           A control list definition starts with the CCCCoooonnnnttttrrrroooollllLLLLiiiisssstttt
  290.           keyword.  Following the CCCCoooonnnnttttrrrroooollllLLLLiiiisssstttt keyword are any number
  291.           of control list definitions.  Control list definitions are
  292.           made up of a control list name followed by the set of
  293.           controls it represents.  For example:
  294.  
  295.           ControlList
  296.                   Buttons {PushButton;
  297.                            RadioButton;
  298.                            CascadeButton;
  299.                            NewCascadebutton;};
  300.  
  301.  
  302.           Each control specified in the control list must be defined
  303.           as a class in the file.
  304.  
  305.         CCCCllllaaaassssssss DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  306.           Class definitions describe a particular widget class
  307.           including its position in the class hierarchy, toolkit
  308.           convenience function, resources, and controls.  There should
  309.           be one class definition for each widget or gadget in the
  310.           widget set you want to support in UIL.  Class definitions
  311.           have the following syntax:
  312.  
  313.           CCCCllllaaaassssssss _c_l_a_s_s._n_a_m_e :::: MMMMeeeettttaaaaCCCCllllaaaassssssss | WWWWiiiiddddggggeeeetttt | GGGGaaaaddddggggeeeetttt
  314.                [{{{{[
  315.                SSSSuuuuppppeeeerrrrCCCCllllaaaassssssss ==== _c_l_a_s_s._n_a_m_e;;;; |
  316.                PPPPaaaarrrreeeennnnttttCCCCllllaaaassssssss ==== _p_a_r_e_n_t._c_l_a_s_s._n_a_m_e;;;; |
  317.                IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll ==== _i_n_t_e_r_n_a_l._n_a_m_e;;;; |
  318.                AAAAlllliiiiaaaassss ==== _a_l_i_a_s;;;; |
  319.                CCCCoooonnnnvvvveeeennnniiiieeeennnncccceeeeFFFFuuuunnnnccccttttiiiioooonnnn ==== _c_o_n_v_e_n_i_e_n_c_e._f_u_n_c_t_i_o_n;;;; |
  320.                WWWWiiiiddddggggeeeettttCCCCllllaaaassssssss ==== _w_i_d_g_e_t._c_l_a_s_s;;;; |
  321.                DDDDooooccccNNNNaaaammmmeeee ==== """"_s_t_r_i_n_g"""";;;; |
  322.                DDDDiiiiaaaallllooooggggCCCCllllaaaassssssss ==== TTTTrrrruuuueeee | FFFFaaaallllsssseeee;;;; |
  323.                RRRReeeessssoooouuuurrrrcccceeeessss {{{{ _a_n_y._r_e_s_o_u_r_c_e._n_a_m_e [{{{{
  324.  
  325.  
  326.  
  327.      Page 5                                          (printed 4/30/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  335.  
  336.  
  337.  
  338.                          DDDDeeeeffffaaaauuuulllltttt ==== _n_e_w._d_e_f_a_u_l_t._v_a_l_u_e;;;; |
  339.                          EEEExxxxcccclllluuuuddddeeee ==== TTTTrrrruuuueeee |
  340.                          FFFFaaaallllsssseeee;;;;
  341.                          [...]}}}} ];;;;
  342.                     [...]}}}};;;; |
  343.                CCCCoooonnnnttttrrrroooollllssss {{{{ _a_n_y._c_o_n_t_r_o_l._n_a_m_e;;;; [...]}}}};;;;
  344.                CCCChhhhiiiillllddddrrrreeeennnn {{{{ _a_n_y._c_h_i_l_d._n_a_m_e;;;; [...] }}}};;;;
  345.                [...]
  346.                ]}}}}];;;;
  347.  
  348.           Class definitions start with the CCCCllllaaaassssssss keyword. For each
  349.           class defined, the name of the class and whether the class
  350.           is a metaclass, widget, or gadget is listed.  Each class
  351.           definition can be further modified with the following
  352.           keywords:
  353.  
  354.  
  355.           SSSSuuuuppppeeeerrrrCCCCllllaaaassssssss  This indicates the name of the parent class.
  356.                       Only the root of the hierarchy does not specify
  357.                       a SuperClass.
  358.  
  359.           PPPPaaaarrrreeeennnnttttCCCCllllaaaassssssss This indicates the name of the widgets
  360.                       automatically created parent class if one
  361.                       exists.  This allows resources for that
  362.                       automatically created class to be used in
  363.                       instances of this class.  For example,
  364.                       XXXXmmmmBBBBuuuulllllllleeeettttiiiinnnnBBBBooooaaaarrrrddddDDDDiiiiaaaalllloooogggg creates both an
  365.                       XXXXmmmmBBBBuuuulllllllleeeettttiiiinnnnBBBBooooaaaarrrrdddd and an XXXXmmmmDDDDiiiiaaaallllooooggggSSSShhhheeeellllllll.  To access
  366.                       the resources of the XXXXmmmmDDDDiiiiaaaallllooooggggSSSShhhheeeellllllll parent class
  367.                       it must be specified here.
  368.  
  369.           IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll
  370.                       which forces the value of the internal symbol
  371.                       table literal definition of the class name.
  372.                       This modifier is only used to get around symbol
  373.                       table definitions hard coded into the UIL
  374.                       compiler.  It should rarely be used.
  375.  
  376.           AAAAlllliiiiaaaassss       This indicates alternate names for the class for
  377.                       use in a UIL specification.
  378.  
  379.           CCCCoooonnnnvvvveeeennnniiiieeeennnncccceeeeFFFFuuuunnnnccccttttiiiioooonnnn
  380.                       This indicates the name of the creation
  381.                       convenience function for this class.  All widget
  382.                       and gadget classes must have a
  383.                       CCCCoooonnnnvvvveeeennnniiiieeeennnncccceeeeFFFFuuuunnnnccccttttiiiioooonnnn ....
  384.  
  385.           WWWWiiiiddddggggeeeettttCCCCllllaaaassssssss This indicates the associated widget class of
  386.                       gadget type classes.  Presently, nothing is done
  387.                       with this value.
  388.  
  389.           DDDDooooccccNNNNaaaammmmeeee     This defines an arbitrary string for use in the
  390.  
  391.  
  392.  
  393.      Page 6                                          (printed 4/30/98)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  401.  
  402.  
  403.  
  404.                       documentation.  Presently, nothing is done with
  405.                       this value.
  406.  
  407.           DDDDiiiiaaaallllooooggggCCCCllllaaaassssssss This indicates whether the class is a dialog
  408.                       class.  Presently, nothing is done with this
  409.                       value.
  410.  
  411.           RRRReeeessssoooouuuurrrrcccceeeessss   This lists the resources of the widget class.
  412.                       This keyword can be further modified with:
  413.  
  414.  
  415.                       DDDDeeeeffffaaaauuuulllltttt   This specifies a new default value for
  416.                                 this resource.  Resource default
  417.                                 values are usually set in the resource
  418.                                 definition.  If an inherited
  419.                                 resource's default value is changed by
  420.                                 the class, the new default value
  421.                                 should be noted here.
  422.  
  423.                       EEEExxxxcccclllluuuuddddeeee   This specifies whether an inherited
  424.                                 resource should be excluded from the
  425.                                 resource list of the class.  Exclude
  426.                                 is FFFFaaaallllsssseeee by default.
  427.  
  428.  
  429.           CCCChhhhiiiillllddddrrrreeeennnn    This lists the names of the automatically
  430.                       created children of this class, so that those
  431.                       children can be accessed in the UIL file.
  432.  
  433.           CCCCoooonnnnttttrrrroooollllssss    This lists the controls that the widget class
  434.                       allows.  The controls can be other classes or a
  435.                       control list from the control list definition.
  436.  
  437.  
  438.           The example below uses the examples from the data type
  439.           definitions and control list definitions above.
  440.  
  441.           Class
  442.                TopLevelWidget : MetaClass
  443.                     {
  444.                     Resources
  445.                          {
  446.                          XtbNfirstResource;
  447.                          XtbNsecondResource;
  448.                          };
  449.                     };
  450.                NewWidget : Widget
  451.                     {
  452.                     SuperClass = TopLevelWidget;
  453.                     ConvenienceFunction =
  454.                         XtbCreateNewWidget;
  455.                     Resources
  456.  
  457.  
  458.  
  459.      Page 7                                          (printed 4/30/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  467.  
  468.  
  469.  
  470.                          {
  471.                          XtbNnewResource;
  472.                          XtbNfirstResource
  473.                             {Default="XtbNEW_VALUE";};
  474.                          XtbNsecondResource
  475.                             {Exclude=True;};
  476.                          };
  477.                     Controls
  478.                          {
  479.                          NewWidget;
  480.                          Buttons;
  481.                          };
  482.                     };
  483.  
  484.  
  485.         CCCChhhhiiiilllldddd DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  486.           Child definitions register the classes of automatically
  487.           created children.  Automatically created children are
  488.           referenced elsewhere in a uil file using the CCCChhhhiiiillllddddrrrreeeennnn
  489.           keyword within a class definition.  Child definitions have
  490.           the following syntax:
  491.  
  492.           CCCChhhhiiiilllldddd
  493.                _c_h_i_l_d._n_a_m_e :::: _c_l_a_s_s._n_a_m_e;;;;
  494.                [...]
  495.  
  496.           Where _c_h_i_l_d._n_a_m_e is the name of the automatically created
  497.           child and _c_l_a_s_s._n_a_m_e is the name of the class of that child.
  498.  
  499.         RRRReeeessssoooouuuurrrrcccceeee DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  500.           Resource definitions describe a particular resource
  501.           including its type, and default value.  There should be a
  502.           resource definition for each new resource referenced in the
  503.           class definitions.  Resource definitions have the following
  504.           syntax:
  505.  
  506.           RRRReeeessssoooouuuurrrrcccceeee
  507.                _r_e_s_o_u_r_c_e._n_a_m_e :::: AAAArrrrgggguuuummmmeeeennnntttt | RRRReeeeaaaassssoooonnnn | CCCCoooonnnnssssttttrrrraaaaiiiinnnntttt | SSSSuuuubbbbRRRReeeessssoooouuuurrrrcccceeee
  508.                     [{{{{[
  509.                     TTTTyyyyppppeeee ==== _t_y_p_e ;;;; |
  510.                     RRRReeeessssoooouuuurrrrcccceeeeLLLLiiiitttteeeerrrraaaallll ==== _r_e_s_o_u_r_c_e._l_i_t_e_r_a_l ;;;; |
  511.                     IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll ==== _i_n_t_e_r_n_a_l._n_a_m_e;;;; |
  512.                     AAAAlllliiiiaaaassss ==== _a_l_i_a_s ;;;; |
  513.                     RRRReeeellllaaaatttteeeedddd ==== _r_e_l_a_t_e_d ;;;; |
  514.                     DDDDeeeeffffaaaauuuulllltttt ==== _d_e_f_a_u_l_t ;;;; |
  515.                     DDDDooooccccNNNNaaaammmmeeee ==== _d_o_c._n_a_m_e ;;;; ]
  516.                     [...]}}}}]
  517.                [...]
  518.  
  519.           Resource definitions start with the RRRReeeessssoooouuuurrrrcccceeee keyword. For
  520.           each resource definition, the name of the resource and
  521.           whether the resource is an argument, reason, constraint or
  522.  
  523.  
  524.  
  525.      Page 8                                          (printed 4/30/98)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  533.  
  534.  
  535.  
  536.           subresource is listed.
  537.  
  538.  
  539.           AAAArrrrgggguuuummmmeeeennnntttt       Indicates a standard resource.
  540.  
  541.           RRRReeeeaaaassssoooonnnn         Indicates a callback resource.
  542.  
  543.           CCCCoooonnnnssssttttrrrraaaaiiiinnnntttt     Indicates a constraint resource.
  544.  
  545.           SSSSuuuubbbbRRRReeeessssoooouuuurrrrcccceeee    Presently, nothing is done with this value.
  546.  
  547.  
  548.           The resource definition can be further modified with the
  549.           following keywords:
  550.  
  551.  
  552.           TTTTyyyyppppeeee           This indicates the data type of the resource.
  553.                          It must be listed in the data type
  554.                          definition.
  555.  
  556.           RRRReeeessssoooouuuurrrrcccceeeeLLLLiiiitttteeeerrrraaaallll
  557.                          This indicates the keyword used in the UIL
  558.                          file to reference the resource.  In Motif,
  559.                          the resource name is the same as the
  560.                          RRRReeeessssoooouuuurrrrcccceeeeLLLLiiiitttteeeerrrraaaallll ....
  561.  
  562.           IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll
  563.                          which forces the value of the internal symbol
  564.                          table literal definition of the resource
  565.                          name.  This modifier is only used to get
  566.                          around symbol table definitions hard coded
  567.                          into the UIL compiler.  It should rarely be
  568.                          used.
  569.  
  570.           AAAAlllliiiiaaaassss          This indicates alternate names for the
  571.                          resource for use in a UIL specification.
  572.  
  573.           RRRReeeellllaaaatttteeeedddd        This is a special purpose field that allows
  574.                          resources that act as a counter for the
  575.                          current resources to be related to the
  576.                          resource.  UIL automatically sets the value
  577.                          of this related resource to the number of
  578.                          items in the compiled instance of type
  579.                          _r_e_s_o_u_r_c_e._n_a_m_e.
  580.  
  581.           DDDDeeeeffffaaaauuuulllltttt        This indicates the default value of the
  582.                          resource.
  583.  
  584.           DDDDooooccccNNNNaaaammmmeeee        This defines an arbitrary string for use in
  585.                          the documentation.  Presently, nothing is
  586.                          done with this value.
  587.  
  588.  
  589.  
  590.  
  591.      Page 9                                          (printed 4/30/98)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      WWWWMMMMLLLL((((5555XXXX))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   WWWWMMMMLLLL((((5555XXXX))))
  599.  
  600.  
  601.  
  602.           The example below uses the examples from the data type
  603.           definitions, control list definitions and class definitions
  604.           above.
  605.  
  606.           Resource
  607.                XtbNfirstResource : Argument
  608.                     { Type = OddNumber;
  609.                       Default = "XtbOLD_VALUE";};
  610.                XtbNsecondResource : Argument
  611.                     { Type = NewString;
  612.                       Default = "XtbNEW_STRING"; };
  613.                XtbNnewResource : Argument
  614.                     { Type = OddNumber;
  615.                       Default = "XtbODD_NUMBER"; };
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.      Page 10                                         (printed 4/30/98)
  658.  
  659.  
  660.  
  661.